package cn.scw.project.separate.service;

import cn.scw.project.separate.domain.SaRecord;
import cn.scw.project.separate.domain.SeparateVo;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

public interface SaRecordService {

    /**
     * 保存用户分账信息
     *
     * @param user 用户信息
     */
    Long save(SaRecord user);

    /**
     * 逻辑删除分账记录
     *
     * @param id ID
     */
    void delete(Long id);


    void delete(Long[] id);

    /**
     * 物理删除分账记录
     *
     * @param id
     */
    void clear(Long id);

    /**
     * 计算分账信息并存入分账记录
     *
     * @param orderId
     * @param facId
     * @param money
     */
    List<Map<String, String>> reckon(Long orderId, String facId, BigDecimal money);

    /**
     * 列表
     *
     * @param params
     * @return
     */
    List<SaRecord> list(Map<String, Object> params);


    /**
     * 修改分账记录状态
     *
     * @param state
     * @param orderId
     */
    void updateOrderState(Integer state, String orderId);


    List<SeparateVo> queryUserRecord(Long orderId);
    //查询分账成功记录
    List<SeparateVo> querySeparateSuccRecord(Long orderId);
}
